Fiddler常见面试题
1.什么叫断点?
Break Point:进行接口测试时,为了测试后端功能而设置的。
2.断点有哪些方式?
Before Requests:在请求时,没有达到服务器之前设置断点。 -- 全局断点(中断fiddler捕获的所有请求)
After responses:服务器响应之后,在fiddler将响应传回给客户端之前。 -- 全局断点(中断fiddler捕获的所有服务器返回数据)
取消断点:Disabled
3.为什么要设置断点
进行接口测试时,拦截和修改数据,测后端功能。比如:图书网的某本小说的售价是100元,进行网页前端的功能测试时,只能输入100元进行购买!但是通过fiddler抓包工具可以拦截,修改数据。万一有些别有用心的人跳过前端输入框验证,然后修改数据,输入-100元进行购买。这样的话,不仅买到了小说,账户余额还增加了100元。这就说明后端接口不对。
4.怎么设置断点?(全局断点和单个断点)
- Rules>>Automatic Breakpoints>>Before Requests(After Responses) -- 全局断点
- 在命令行输入:(单个断点)
- bpu 接口的url地址 eg:bpu https://passport.cnblogs.com/user/signin 然后按回车 -- before request
- bafter 接口的url地址 eg:bpafter https://passport.cnblogs.com/user/signin 然后按回车 -- after response
5.拦截来自某个网址所有请求
1.在命令行输入:bpu www.cnblogs.com
2.打开博客园任意网页,发现都被拦截到了
3.打开博客园其他网站,其它网站可以正常请求
4.说明只拦截了来自部落论坛(www.cnblogs.com)的请求
5.清除输入bpu回车即可
6.Fiddler断点在工作中有什么作用?
主要是用来修改请求和响应数据的,比如我们的VX(微信)发红包功能,其实在前端是设置了一个一分钱到两百块钱的金额限制,当我们做测试的时候想要去发超过200块钱的金额就可以用Fiddler对我们的before request设置一个断点,然后修改我们的金额发送一个 超过200块钱。比如说发个520的金额红包到我们的后端,检查服务端处理是否OK。又比如测试需要返回不同 的数据来检查前端的显示,我们 可以用Fiddler来对 after response设置一个断点,修改返回数据查看前端显示的效果 。
7.说一下Fiddler怎么模拟弱网场景?你知道MQTT是 什么东西吗 ?
在Fiddler中rules右键点击 Customize Rules(自定义规则) ,然后双击打开 Customize Rules.js文档,修改文档中每上传或者是下载1kb数据所需要的时间来模拟我们的弱网环境,然后再rules–performance(性能)下面点击simulate modem speeds(模拟调制解调器速度)开启弱网环境的模拟 ,通过以上三步,就可以实现弱网测试场景的构造。
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
8.网络爬虫是干什么的?
爬虫就是运用这种爬虫的技术来去互联网上获取我们一些我们想要的信息,比如我是一个做生意的,我想要去了解一下我的同行们都在卖什么货,什么货卖得比较好,那么如果只有十个八个的一些同行,那么可能我可以手工或者是人力的分析过来,但如果有上百个、上千个、上万个,那么这个时候就肯定需要借助一些工具,一些技术手段来把他们抓取过来,拿到这些数据之后,我再做一些简单的分析,来看一下哪些货卖的比较好,他们的销量各自是什么样子的,这就是我们常说的爬虫技术的一个应用领域。
9. wireshark抓包工具的主要使用场景有哪些?
wireshark抓包工具它的主要目的是用来分析测试过程中间的网络问题,比如测试某个web页面时打不开,那么我们可以通过wireshark来分析一下是客户端的问题还是服务端的问题,同时我们也可以来分析一下是哪个连接阶段出现的问题。
拿http协议我们来举例,我们可以通过wireshark进行分析得出是在TCP 3次握手过程中间发生的错误还是在握手之后进行数据传输的时候发生的错误,是客户端主动断开的连接还是说被服务器给reset,我们都可以通过wireshark抓包分析得出。
10. 用F12抓包后如何解析数据?
1.直接处理。当网页返回数据就是一些文本,就是我们想要的内容,不需要过滤处理,直接处理就可以
2.Json解析。如果网页返回的不是HTML数据是JSON数据,那么就需要用到JSON解析技术
3.正则表达式。如果返回的数据是符合正则表达式的数据,就可以用正则去做解析
4.其他解析方式。常用的有XPath、BeautifulSoup和PyQuery,这些都是爬虫常用的解析库。
11.抓包工具的区别?
1.Fiddler是免费开源的,但只能在windows下使用,mac和Linux是不支持的
2.Charles支持windows、MacOS和Linux操作系统,但是它不免费
3.Wireshark可以抓取所有协议的内容,非常适合协议的学习和网络问题的分析,但是Wireshark它需要你具备一定的网络知识,所以对于初学者来说不是很友好
4.F12最简单最轻量级,但是和其他的抓包工具还是存在一定的差距
5.TCPdump主要用于Linux命令的抓包工具,前提是你要会操作Linux系统
12.Fiddler能做什么?
Fiddler是一款功能强大的抓包工具,能获取和记录客户端与服务器之间的HTTP(及HTTPS)请求。
1、抓包:抓取HTTP请求和响应内容。
2、改包:设置断点,拦截HTTP请求或响应报文,修改后再放行。
3、模拟各种客户端:fiddler可修改user-agent内容,伪装成各种客户端发送请求。
4、弱网测试:通过限制HTTP请求或响应的速度,来模拟网络延迟。
13.Fiddler为什么能抓包?
Fiddler实际上是一个web代理服务器,代理地址为127.0.0.1,默认端口为8888。代理服务器位于Web浏览器和Web服务器中间,扮演“中间人”的角色。
1、当Fiddler启动抓包时,会将本机internet连接中,设置为使用代理服务器,地址为127.0.0.1,端口号为8888
2、当Fidder关闭抓包时,将本机internet选项中,取消代理设置。
Fiddler只能抓HTTP和HTTPS协议的包,其他协议的包是抓不到的,比如qq聊天时候发送的消息,就是抓不到的。
14.Fiddler怎么修改HTTP协议内容?
举例,假设对www.baidu.com发送请求,
1、若要修改HTTP请求的内容
1)在fiddler左下角的命令行中,输入bpu www.baidu.com
2)浏览器中打开百度首页,即发送HTTP请求
3)fiddler中,该HTTP请求显示出来,且有个红色的T标志
4)在右侧的界面中,打开raw tab页,可手动修改请求的内容,点击【Run to completion】放行
5)输入bpu则取消断点设置。
2、若要修改HTTP响应的内容,在fiddler左下角命令行中,输入bpafter www.baidu.com,其他同上
15.fiddler如何修改请求参数:
方法一:直接在composer中修改,点击按钮【execute】重新请求就可以了
方法二:用断点的方式修改。fiddler下边有一个设置断点的按钮,箭头向上请求前断电,箭头向下响应断点。
设置断点以后,就可以在webform中修改请求参数了,然后点击按钮【run to connection】就可以重新发送了
16.Fiddler如何实现弱网测试?
弱网一般指在电梯、地铁、公交车、隧道等场景下使用客户端浏览网页或者APP,此时可能会发生如下问题:
1、操作时间慢
2、用户体验差,出现闪退、卡死等情况
3、非正常情况下,出现bug的可能性增加,比如在电梯里打开app抢代金券,可能因为网络不好点击按钮后无反应,就多次点击按钮,导致网络恢复后,该用户抢了N多张代金券(需求是一个用户只能抢一张代金券)
弱网可分为如下场景:
1、网络慢,有延迟:fiddler的Rules->Performance->Simulate Modem Speeds,如果需要设置具体的延迟时间,可在FiddlerScript脚本中修改。
2、网络中断或者网络超时:都可以通过下断点的方式来模拟。
如何进行弱网测试:
fiddler的弱网测试需要用到fiddler script 插件
如果是发送请求延迟:fodder script代码中修改函数onBeforeRequest中的一行代码。 bscession["request-trickle-delay"]='3000',点击按钮【save script】保存,然后用replay回放请求就可以了。这样就模拟了请求发送延迟3秒了
如果是响应延迟:fodder script代码中修改函数onBeforeRequest中的一行代码。 bscession["response-trickle-delay"]='3000',点击按钮【save script】保存,然后用replay回放请求就可以了。这样就模拟了响应延迟3秒了。
17.fiddler抓不到请求的原因?
(1)抓不到app的请求,可能是代理或者端口设置的不对
(2)fiddler配置问题导致:
a、fiddler添加了域名过滤,所以抓不到其他域名的请求
b、fiddler关闭了代理功能,所以抓不到请求(开关在左下角)
c、fiddler设置了process,只能抓到某个浏览器的请求
(3)ios抓不到包有可能是证书过期了,需要重新安装证书